There are various reasons why network operators desire to monitor traffic in their networks. One goal of network monitoring is to identify problems in the network, for example, caused by misconfiguration, overloading, or faulty network connections/devices. Network monitoring enables the network operator to characterize the state of the network, the traffic demands, and the actual consumption of network resources. This data allows the network operator to efficiently analyze the network and to respond to any problems that are occurring in the network.
Some network devices have built-in capabilities that collect performance data, generate logs, or trigger alarms in response to detecting certain network events. However, these capabilities are not supported by all network devices and accessing these capabilities often requires support from the equipment vendor. Monitoring solutions available to end user customers typically do not have the same full access rights as the service provider who owns the network infrastructure, and thus may not be able to take the same direct approach to monitor the network (e.g., inspect configuration settings or read system logs). Also, as networks get larger and more complex, it becomes more difficult to maintain adequate network monitoring coverage over a network. Monitoring such large and complex networks impose huge challenges in terms of scalability, controllability, and flexibility.